1. Technical Field
This invention generally relates to interactions on the world-wide web, and more specifically relates to an apparatus and method that allows a web user to interact with a software application on another computer system that is accessible via the world-wide web.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful that just a few years ago.
Computer systems typically include operating system software that control the basic function of the computer, and one or more software applications that run under the control of the operating system to perform desired tasks. For example, a typical IBM Personal Computer may run the OS/2 operating system, and under the control of the OS/2 operating system, a user may execute an application program, such as a word processor. As the capabilities of computer systems have increased, the software applications designed for high performance computer systems have become extremely powerful.
Other changes in technology have also profoundly affected how we use computers. For example, the widespread proliferation of computers prompted the development of computer networks that allow computers to communicate with each other. With the introduction of the personal computer (PC), computing became accessible to large numbers of people. Networks for personal computers were developed to allow individual users to communicate with each other. In this manner, a large number of people within a company could communicate at the same time with a software application running on one computer system.
One significant computer network that has recently become very popular is the Internet. The Internet grew out of the modern proliferation of computers and networks, and has evolved into a sophisticated worldwide network of computer systems linked together by web pages that collectively make up the "world-wide web", or WWW. A user at an individual PC (i.e., workstation) that wishes to access the WWW typically does so using a software application known as a web browser. A web browser makes a connection via the WWW to other computers known as web servers, and receives information from the web servers that is displayed on the user's workstation. Information displayed to the user is typically organized into pages that are constructed using a specialized language called Hypertext Markup Language (HTML).
With the growing popularity of the Internet and the WWW, businesses have recognized that the Internet provides a new way to boost both sales and efficiency. If a user with a web browser can interact directly with a company's work flow software, the transaction will be simplified. However, allowing a work flow product to interact with web users would require creating custom web server/software application interface for each specific software application that is to be accessed via the WWW.
In particular, most traditional systems use Common Gateway Interface (CGI) modules or programs as an interface between web servers and other software applications. For example, a CGI module could provide a link between a web server and a calendar software application, allowing the web server, for example, to insert dynamic calendar information into the web pages it outputs to web browsers. Thus, CGIs allow web servers to distribute dynamic data from other software applications. Unfortunately, programming a CGI is a time consuming task given numerous specifications that a CGI should satisfy. Furthermore, a separate CGI is generally needed for each different software application to be interfaced with the web server. Additionally, different CGI's may be required to perform different functions, such as grant the different users different levels of access to the same software application data. In addition to be difficult to program, multiple CGI's running at one time on a web server can significantly degrade server performance.
The process of generating a custom interface with a specialized CGI is time consuming and expensive, and results in a proprietary interface that cannot be used for communicating with other software applications. Without improved methods of communicating between software applications and computers on the world-wide web, the time and effort required to interface between an Internet user and a software application will be excessively long and expensive.